Add debug-key for printing IRQ/IOAPIC info.
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Thu, 14 Jul 2005 10:16:45 +0000 (10:16 +0000)
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Thu, 14 Jul 2005 10:16:45 +0000 (10:16 +0000)
Signed-off-by: Keir Fraser <keir@xensource.com>
xen/arch/x86/io_apic.c

index 470cf3b5934d4dcb349fe5982319d9f0bf31e81e..255b5907580d2ba9414e4f28b97b8d6ef1526ea6 100644 (file)
@@ -27,6 +27,7 @@
 #include <xen/delay.h>
 #include <xen/sched.h>
 #include <xen/acpi.h>
+#include <xen/keyhandler.h>
 #include <asm/io.h>
 #include <asm/mc146818rtc.h>
 #include <asm/smp.h>
@@ -744,7 +745,7 @@ static inline void UNEXPECTED_IO_APIC(void)
 {
 }
 
-void __init print_IO_APIC(void)
+void __init __print_IO_APIC(void)
 {
     int apic, i;
     union IO_APIC_reg_00 reg_00;
@@ -753,9 +754,6 @@ void __init print_IO_APIC(void)
     union IO_APIC_reg_03 reg_03;
     unsigned long flags;
 
-    if (apic_verbosity == APIC_QUIET)
-        return;
-
     printk(KERN_DEBUG "number of MP IRQ sources: %d.\n", mp_irq_entries);
     for (i = 0; i < nr_ioapics; i++)
         printk(KERN_DEBUG "number of IO-APIC #%d registers: %d.\n",
@@ -889,6 +887,17 @@ void __init print_IO_APIC(void)
     return;
 }
 
+void print_IO_APIC(void)
+{
+    if (apic_verbosity != APIC_QUIET)
+        __print_IO_APIC();
+}
+
+void print_IO_APIC_keyhandler(unsigned char key)
+{
+    __print_IO_APIC();
+}
+
 static void __init enable_IO_APIC(void)
 {
     union IO_APIC_reg_01 reg_01;
@@ -1531,6 +1540,8 @@ void __init setup_IO_APIC(void)
     init_IO_APIC_traps();
     check_timer();
     print_IO_APIC();
+
+    register_keyhandler('z', print_IO_APIC_keyhandler, "print ioapic info");
 }
 
 /* --------------------------------------------------------------------------